1. Technical Field
This invention relates in general to communication protocols for computing environments, and more particularly, to flow control for message passing in a reliable message passing layer.
2. Description of the Related Art
The Internet and other networks typically implement protocol layers stacked on top of each other with each protocol layer offering differing functionalities and performance. In one example, protocol layering may be used to protect software layers, which use the protocol layers for reliable communication, from the physical hardware details that control the actual sending of data over the network.
As computer systems become more complex, additional protocol layers may be added for support. For example, protocol layering in high-performance parallel computing systems may include message layer protocols for enhancing message-based communications over a network. Low-level application program interface (LAPI) is an example of a messaging layer protocol that is a message-passing API providing an active message, one-sided communication model.
By implementing LAPI and other reliable communication layers, the reliable communication layer provides for reliable message passing, whether across a reliable or unreliable interconnect or others layers. LAPI and other reliable communication layers may include a sending or source node and a receiving or destination node, where the source node requires the destination node to return an acknowledgment of receipt of each packet of a message. The source node tracks whether acknowledgments are received and if the destination node does not return an acknowledgment within a period of time, the source node may resend the packet. When packets are only traveling to a few destinations, memory requirements for tracking acknowledgment of packets by destination are typically manageable. In the current network environment, however, the memory and resource management for tracking acknowledgment of packets by destination for a few destinations does not scale well when the number of destinations scales up, such as to a million destinations.